﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using BLL.Validation;


namespace BLL
{
    public class ChungChiManager: IValidator<ChungChi>
    {
        public static ActionResultAsList<ChungChi> LayDanhSachChungChi()
        {
            var aResult = new ActionResultAsList<ChungChi>();
            try
            {
                aResult.Result = ChungChiProvider.LayDanhSachChungChi();
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<int> ThemChungChi(ChungChi chungchi)
        {
            var aResult = new ActionResult<int>();
            try
            {
                aResult.Result = ChungChiProvider.ThemChungChi(chungchi);
                if (aResult.Result <= 0)
                {
                    aResult.Exceptions.Add(new Exception("Thêm chứng chỉ không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<bool> XoaChungChi(int maChungChi)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = ChungChiProvider.XoaChungChi(maChungChi);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Xóa chứng chỉ không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }


        public static ActionResult<bool> CapNhatChungChi(ChungChi chungchi)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = ChungChiProvider.CapNhatChungChi(chungchi);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Cập nhật thông tin chứng chỉ không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public ValidationResult Validate(ChungChi obj)
        {
            var vResult = new ValidationResult();
            if (string.IsNullOrEmpty(obj.TenChungChi.Trim()))
            {
                vResult.Message.Add("Tên chứng chỉ phải khác chuỗi rỗng");
            }
            if (string.IsNullOrEmpty(obj.NoiCap.Trim()))
            {
                vResult.Message.Add("Nơi cấp phải khác chuỗi rỗng");
            }
            if (string.IsNullOrEmpty(obj.ThoiHan.Trim()))
            {
                vResult.Message.Add("Thời hạn phải khác chuỗi rỗng");
            }
            return vResult;
        }
    }
}
